package com.shan;

/**
 * @Author: ShanYuqing
 * @Version: v1.0
 */
public class ArrayIndex {
    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int num = sc.nextInt();
//        int[] arr = {19, 28, 37, 46, 50};
//        int index = findIndex(num, arr);
//        System.out.println("索引的位置："+index);
        int[] arr = {11,22,55,66,77,11,11,78,11};
        int[] results = findChong(11,arr);
        if(results.length==0){
            System.out.println("您的数字没有找到");
        }
        for (int i = 0; i < results.length; i++) {
            System.out.println(results[i]);
        }

    }

    /*
            设计一个方法，查找元素在数组中的索引位置
            已知一个数组 arr = {19,28,37,46,50}
            键盘录入一个数据，查找该数据在数组中的索引
            并在控制台输出找到的索引值
            如果没有找到，则输出-1
     */
    public static int findIndex(int num, int[] arr) {
        int index = -1;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == num) {
                index = i;
                break;
            }
        }
        return index;
    }
    /*
            需求：设计一个方法，查找元素在数组中的索引位置（考虑重复元素问题）
            注意：return只能返回一个结果

            问题：当一个方法运行结束后，有多个结果需要返回，应该怎么处理？
            回答：可以将多个结果，存入一个数组容器，将数组返回
     */
    public static int[]  findChong(int num,int[] arr){
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if(num==arr[i]){
                count++;
            }
        }
        int index = 0;
        int[] results = new int[count];
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==num){
                results[index] = i;
                index++;
            }
        }
        return results;
    }
}
